package com.ken.mqspring.adapter;

import com.ken.mqspring.entity.Order;
import com.ken.mqspring.entity.Packaged;

import java.io.File;
import java.util.Map;

/**
 * 自定义配置器
 * Created by renchongyu on 2018/11/21.
 */
public class MessageDelegate {

    //默认模式，默认方法名不可变
    public void handleMessage(byte[] messageBody){
        System.out.println("into myself message handle");
        System.out.println(new String(messageBody));
    }
    //对应适配器第一种方式
    public void consumerMessage(byte[] messageBody){
        System.out.println("into myself method message handle!");
        System.out.println(new String(messageBody));
    }
    //对应适配器第一种方式，完成MessageConverter接口，实现字符串转换
    public void consumerMessage(String messageBody){
        System.out.println("into myself method String message handle!");
        System.out.println(messageBody);
    }

    //对应适配器第二种方式，指定队列名与方法名。同时使用了MessageConverter接口字符串转换
    public void method1(String messageBody){
        System.out.println("into myself method method1 message handle!");
        System.out.println(messageBody);
    }
    //对应适配器第二种方式，指定队列名与方法名。同时使用了MessageConverter接口字符串转换
    public void method2(String messageBody){
        System.out.println("into myself method method2 message handle!");
        System.out.println(messageBody);
    }

    //对应 自定义转换器1.1支持json格式的转换器
    public void consumeMessage(Map message){
        System.out.println("Map接收, message ="+message);
    }

    //自定义转换器1.2、支持json格式转换为java类的转换器
    //自定义转换器1.3、支持json格式转换为多个java类的转换器
    public void consumeMessage(Order order){
        System.out.println("order.toString=["+order.toString()+"]");
    }
    //自定义转换器1.3、支持json格式转换为多个java类的转换器
    public void consumeMessage(Packaged packaged){
        System.out.println("packaged.toString=["+packaged.toString()+"]");
    }

    //1.4一些不是很常用的类型：img、pdf、ppt等等
    public void consumeMessage(File file){
        System.out.println("file.getName=["+file.getName()+"]");
    }
}
